
import { getBusinessInfo} from 'nc-lightapp-front';

/**
 * 
 * 自定义档案过滤
 * 
 * @param {模板属性} props 
 * @param {模板区域编码} moduleId 
 * @param {模板区域字段} key 
 * @param {过滤条件} where 
 */
export function fiterDefdoc(props, moduleId, key, where){
        let meta = props.meta.getMeta();
        meta[moduleId] && meta[moduleId].items.map((item) => {
                //银行账号
                if (item.attrcode == key) {
                        item.queryCondition = () => {
                                return {
                                        GridRefActionExt: 'nccloud.arap.bill.refer.filter.RqDefdocRefFiter',//自定义档案过滤器
                                        where: where
                                };
                        }
                }
        })
        props.meta.setMeta(meta);
}

/**
 * 业务单元-利润中心过滤
 * 
 * @param {模板属性} props 
 * @param {模板区域编码} moduleId 
 * @param {模板区域字段} key 
 * @param {是否使用权} isDataPowerEnable 
 * @param {是否多选} isMultiSelectedEnabled 
 */
export function fiterLrzxOrg(props, moduleId, key, isDataPowerEnable, isMultiSelectedEnabled){
        let meta = props.meta.getMeta();
        meta[moduleId] && meta[moduleId].items.map((item) => {
                if (item.attrcode == key) {
                        item.isMultiSelectedEnabled = isMultiSelectedEnabled;
                        item.queryCondition = () => {
                                return {
                                        isDataPowerEnable : isDataPowerEnable,
                                        TreeRefActionExt : 'nccloud.arap.bill.refer.filter.LrzxOrgRefFilter'//业务单元-利润中心过滤器
                                };
                        }
                }
        })
        props.meta.setMeta(meta);
}

/**
 * 业务单元-根据业务角色分配的组织过滤
 * 
 * @param {模板属性} props 
 * @param {模板区域编码} moduleId 
 * @param {模板区域字段} key 
 * @param {是否多选} isMultiSelectedEnabled 
 */
 export function fiterAppPermissionOrg(props, moduleId, key, isMultiSelectedEnabled){
        let meta = props.meta.getMeta();
        meta[moduleId] && meta[moduleId].items.map((item) => {
                if (item.attrcode == key) {
                        item.isMultiSelectedEnabled = isMultiSelectedEnabled;
                        item.queryCondition = () => {
                                return {
                                        funcode: props.getSearchParam('c'),//appcode获取
                                        TreeRefActionExt: 'nccloud.web.ampub.common.refCodition.AppPermissionOrgRefFilter'
                                };
                        }
                }
        })
        props.meta.setMeta(meta);
}

/**
 * 
 * 法人科目参照过滤
 * 
 * @param {模板属性} props 
 * @param {模板区域编码} moduleId 
 * @param {模板区域字段} key 
 * @param {业务单元} pk_org 
 * @param {核算账簿} pk_accountingbook 
 * @param {过滤类型} fiterType 
 */
export function fiterFrkm(props, moduleId, key, pk_org, pk_accountingbook, fiterType){
        let meta = props.meta.getMeta();
        meta[moduleId] && meta[moduleId].items.map((item) => {
                if (item.attrcode == key) {
                        item.queryCondition = () => {
                                return {
                                        pk_org:pk_org,
                                        pk_accountingbook: pk_accountingbook,
                                        JD: fiterType,
                                        TreeRefActionExt: 'nccloud.arap.bill.refer.filter.FrkmRefFiter'
                                };
                        }
                        props.meta.setMeta(meta);       
                }
        })
        props.meta.setMeta(meta);
}

/**
 * 需要根据业务单元进行过滤的所有参照类型
 * 
 * @param {模板属性} props 
 * @param {模板区域编码} moduleId 
 * @param {模板区域字段} key 
 * @param {业务单元} pk_org 
 * @param {是否多选} isMultiSelectedEnabled 
 */
export function byPkorgFiter(props, moduleId, key, pk_org, isMultiSelectedEnabled){
        let meta = props.meta.getMeta();
        meta[moduleId] && meta[moduleId].items.map((item) => {
                if (item.attrcode == key) {
                        item.isMultiSelectedEnabled = isMultiSelectedEnabled;
                        item.queryCondition = () => {
                                return {
                                        pk_group : getBusinessInfo().groupId,
                                        pk_org: pk_org
                                };
                        }
                }
        })
        props.meta.setMeta(meta);
}

/**
 * 需要根据业务单元、部门进行过滤的所有参照类型
 * 
 * @param {模板属性} props 
 * @param {模板区域编码} moduleId 
 * @param {模板区域字段} key 
 * @param {业务单元} pk_org 
 * @param {部门} pk_dept 
 * @param {是否多选} isMultiSelectedEnabled 
 */
 export function byPkdeptFiter(props, moduleId, key, pk_org, pk_dept, isMultiSelectedEnabled){
        let meta = props.meta.getMeta();
        meta[moduleId] && meta[moduleId].items.map((item) => {
                if (item.attrcode == key) {
                        item.isMultiSelectedEnabled = isMultiSelectedEnabled;
                        //显示离职
                        item.isShowDimission= true;
                        item.queryCondition = () => {
                                return {
                                        pk_group : getBusinessInfo().groupId,
                                        pk_org: pk_org,
                                        pk_dept : pk_dept
                                };
                        }
                }
        })
        props.meta.setMeta(meta);
}